package ar.com.larreta.colegio.intercambio.client;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import ar.com.larreta.intercambio.client.Pedido;

public class Detalle extends Pedido {
	public static final String NOMBRE = "nombre";
	public static final String VALOR = "valor";
	public static final String DETALLES_ESPECIFICOS = "detallesEspecificos";
	public static final String OBLIGACION = "obligacion";
	
	public Detalle(){
		//setProceso(ProcesosColegioConst.GUARDAR_RESPONSABLE);
	}
	
	public Obligacion getObligacion() {
		return get(OBLIGACION);
	}
	
	public void setObligacion(Obligacion obligacion) {
		set(OBLIGACION, obligacion);
	}
	
	public String getNombre() {
		return get(NOMBRE);
	}
	
	public void setNombre(String nombre) {
		set(NOMBRE, nombre);
	}

	public void refreshValue(){
		Set detallesEspecificos = getDetallesEspecificos();
		if ((detallesEspecificos!=null) && (!detallesEspecificos.isEmpty())){
			Double valor = new Double(0);
			Iterator<DetalleEspecifico> it = detallesEspecificos.iterator();
			while (it.hasNext()) {
				DetalleEspecifico detalleEspecifico = (DetalleEspecifico) it.next();
				if (detalleEspecifico.getValor()!=null){
					valor+=detalleEspecifico.getValor();
				}
			}
			setValor(valor);
		}
	}
	
	public Double getValor() {
		return get(VALOR);
	}
	
	public void setValor(Double valor) {
		set(VALOR, valor);
	}
	
	public Set getDetallesEspecificos() {
		return get(DETALLES_ESPECIFICOS);
	}
	
	public void setDetallesEspecificos(List detalles) {
		set(DETALLES_ESPECIFICOS, new HashSet(detalles));
	}
	
	public void setDetallesEspecificos(Set detalles) {
		set(DETALLES_ESPECIFICOS, detalles);
	}
	
	public void addDetalleEspecifico(DetalleEspecifico detalle){
		if (getDetallesEspecificos()==null){
			setDetallesEspecificos(new ArrayList());
		}
		detalle.setDetalle(this);
		getDetallesEspecificos().add(detalle);
	}
}
